//
// Created by liangwenhao on 2024/4/4.
//

#include "LED_task.h"
#include "cmsis_os.h"
#include "main.h"
#include "master_control.h"

void LED_Task(void *argument)
{
    uint16_t Timecnt = 0;
    for(;;)
    {
        Timecnt++;
        if(LoadMotor1.Flag.Shaking == 1 || LoadMotor2.Flag.Shaking == 1)
        {
            HAL_GPIO_WritePin(LED_B_GPIO_Port,LED_B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(LED_G_GPIO_Port,LED_G_Pin,GPIO_PIN_SET);
        }
        else if(Master_Process_Flag == Initializing)
        {
            if(Timecnt >= 200)
            {
                HAL_GPIO_TogglePin(LED_G_GPIO_Port, LED_G_Pin);
                Timecnt = 0;
            }
            HAL_GPIO_WritePin(LED_B_GPIO_Port,LED_B_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_RESET);
        }
        else if(Master_Process_Flag == DartLoadReady)
        {
            HAL_GPIO_WritePin(LED_G_GPIO_Port,LED_G_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(LED_B_GPIO_Port,LED_B_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_RESET);
        }
        else if(Master_Process_Flag == DartLoading)
        {
            if(Timecnt >= 200)
            {
                HAL_GPIO_TogglePin(LED_R_GPIO_Port, LED_R_Pin);
                Timecnt = 0;
            }
            HAL_GPIO_WritePin(LED_G_GPIO_Port,LED_G_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(LED_B_GPIO_Port,LED_B_Pin,GPIO_PIN_RESET);
        }
        else if(Master_Process_Flag == DartFireReady)
        {
            HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(LED_G_GPIO_Port,LED_G_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(LED_B_GPIO_Port,LED_B_Pin,GPIO_PIN_RESET);
        }
        else if(Master_Process_Flag == DartFireFinished)
        {
            HAL_GPIO_WritePin(LED_B_GPIO_Port,LED_B_Pin,GPIO_PIN_SET);
            HAL_GPIO_WritePin(LED_R_GPIO_Port,LED_R_Pin,GPIO_PIN_RESET);
            HAL_GPIO_WritePin(LED_G_GPIO_Port,LED_G_Pin,GPIO_PIN_RESET);
        }
        osDelay(1);
    }
}
